package com.onluy.framework.tools.utils;


import java.util.Iterator;
import java.util.Map; 
import net.sf.json.JSONObject; 
import com.alibaba.fastjson.JSON;
import com.onluy.framework.data.util.InParam;
import com.onluy.framework.system.RespInfo;
import com.onluy.framework.tools.DesUtils; 

/**
 * 请求响应参数转换工具类
 * @author xmh
 *
 */
public class ParamTool {

	/**
	 * 密文的请求参数转换成明文的请求参数，并且转换成map形式
	 * @param inParam
	 */
	public static InParam<String, Object> transReqParam(InParam<String, Object> inParam){
		String reqParamStr = inParam.getString("reqParam"); //前端app把所有请求参数des加密的密文
		//String newParamStr = DesUtils.strDec(reqParamStr); //解密完的String形式的json
		String newParamStr = DesUtils.dec2(reqParamStr); //解密完的String形式的json
//		InParam<String, Object> newParam = new InParam<String, Object>(); //转换成最终的map形式参数
//		
//		JSONObject jsonObject = JSONObject.fromObject(newParamStr);
//		Iterator it = jsonObject.keys();
//		//遍历put到新的 newParam里面
//		while(it.hasNext()){
//			String key = String.valueOf(it.next());  
//	        String value = String.valueOf(jsonObject.get(key));  
//			newParam.put(key, value);
//		}
		 
		InParam<String, Object> newParam = JSON.parseObject(newParamStr, InParam.class);
		
		return newParam;
	}
	
	/**
	 * 密文的请求参数转换成明文的请求参数，并且转换成map形式
	 * @param inParam
	 */
	public static InParam<String, Object> transReqParam(Map<String, Object> inParam){
		String reqParamStr = (String) inParam.get("reqParam"); //前端app把所有请求参数des加密的密文
		//String newParamStr = DesUtils.strDec(reqParamStr); //解密完的String形式的json
		String newParamStr = DesUtils.dec2(reqParamStr); //解密完的String形式的json
		InParam<String, Object> newParam = new InParam<String, Object>(); //转换成最终的map形式参数
		
		JSONObject jsonObject = JSONObject.fromObject(newParamStr);
		Iterator it = jsonObject.keys();
		//遍历put到新的 newParam里面
		while(it.hasNext()){
			String key = String.valueOf(it.next());  
	        String value = String.valueOf(jsonObject.get(key));  
			newParam.put(key, value);
		}
		
		return newParam;
	}
	
	/**
	 * 明文的响应转换成密文的响应
	 * @param inParam
	 */
	public static String transRespInfo(String respInfo){
		//String newRespInfo = DesUtils.strEnc(respInfo); //加密
		String newRespInfo = DesUtils.enc2(respInfo); //加密
		return newRespInfo;
	}
	
	/**
	 * 明文的响应转换成密文的响应
	 * @param respInfo
	 */
	public static String transRespInfo(RespInfo respInfo){
		JSONObject jsonObject = JSONObject.fromObject(respInfo);
		//return DesUtils.strEnc(jsonObject.toString());//转成string然后加密
		return DesUtils.enc2(jsonObject.toString());//转成string然后加密
	}
 
	 
}